package com.ltz.model;
// default package

import static javax.persistence.GenerationType.IDENTITY;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.codehaus.jackson.map.annotate.JsonSerialize;

import component.JsonDateTimeComponent;

/**
 * MonthlyProductData entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "monthly_product_data")
public class MonthlyProductData implements java.io.Serializable {

	// Fields

	private Integer id;
	private Date dateInput;
	private String owner;
	private Integer wellTeamId;
	private String wellTeamName;
	private Date date;
	private Double waterIn;
	private Double preduction;
	private Double oilIn;
	private Double na2so4PerL;
	private Double naclPerL;
	private Double naclWaterPerL;
	private Double na2so4Total;
	private Double naclTotal;
	private Double naclTotalNoWater;
	private Double pipePressureIn;
	private Double pressureBack;
	private Double waterTemperature;
	private Double na2so4Temperature;
	private String operator;
	private String auditer;
	private String remark;
	private String produceMethod;
	@Transient
	private String wellName;
	@Transient
	private String wellGroupName;
	@Transient
	private Integer reportDate;
	// Constructors

	/** default constructor */
	public MonthlyProductData() {
	}

	/** minimal constructor */
	public MonthlyProductData(Integer id) {
		this.id = id;
	}

	/** full constructor */
	public MonthlyProductData(Integer id, Date dateInput, String owner,
			Integer wellTeamId, String wellTeamName, Date date,
			Double waterIn, Double preduction, Double oilIn, Double na2so4PerL,
			Double naclPerL, Double naclWaterPerL, Double na2so4Total,
			Double naclTotal, Double naclTotalNoWater, Double pipePressureIn,
			Double pressureBack, Double waterTemperature,
			Double na2so4Temperature, String operator, String auditer,
			String remark, String produceMethod) {
		this.id = id;
		this.dateInput = dateInput;
		this.owner = owner;
		this.wellTeamId = wellTeamId;
		this.wellTeamName = wellTeamName;
		this.date = date;
		this.waterIn = waterIn;
		this.preduction = preduction;
		this.oilIn = oilIn;
		this.na2so4PerL = na2so4PerL;
		this.naclPerL = naclPerL;
		this.naclWaterPerL = naclWaterPerL;
		this.na2so4Total = na2so4Total;
		this.naclTotal = naclTotal;
		this.naclTotalNoWater = naclTotalNoWater;
		this.pipePressureIn = pipePressureIn;
		this.pressureBack = pressureBack;
		this.waterTemperature = waterTemperature;
		this.na2so4Temperature = na2so4Temperature;
		this.operator = operator;
		this.auditer = auditer;
		this.remark = remark;
		this.produceMethod = produceMethod;
	}

	// Property accessors
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	@JsonSerialize(using=JsonDateTimeComponent.class) 
	@Column(name = "date_input", length = 0)
	public Date getDateInput() {
		return this.dateInput;
	}

	public void setDateInput(Date dateInput) {
		this.dateInput = dateInput;
	}

	@Column(name = "owner", length = 64)
	public String getOwner() {
		return this.owner;
	}

	public void setOwner(String owner) {
		this.owner = owner;
	}

	@Column(name = "well_team_id")
	public Integer getWellTeamId() {
		return this.wellTeamId;
	}

	public void setWellTeamId(Integer wellTeamId) {
		this.wellTeamId = wellTeamId;
	}

	@Column(name = "well_team_name", length = 64)
	public String getWellTeamName() {
		return this.wellTeamName;
	}

	public void setWellTeamName(String wellTeamName) {
		this.wellTeamName = wellTeamName;
	}

	@Column(name = "date", length = 0)
	public Date getDate() {
		return this.date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	@Column(name = "water_in", precision = 10)
	public Double getWaterIn() {
		return this.waterIn;
	}

	public void setWaterIn(Double waterIn) {
		this.waterIn = waterIn;
	}

	@Column(name = "preduction", precision = 10)
	public Double getPreduction() {
		return this.preduction;
	}

	public void setPreduction(Double preduction) {
		this.preduction = preduction;
	}

	@Column(name = "oil_in", precision = 10)
	public Double getOilIn() {
		return this.oilIn;
	}

	public void setOilIn(Double oilIn) {
		this.oilIn = oilIn;
	}

	@Column(name = "na2so4_per_l", precision = 10)
	public Double getNa2so4PerL() {
		return this.na2so4PerL;
	}

	public void setNa2so4PerL(Double na2so4PerL) {
		this.na2so4PerL = na2so4PerL;
	}

	@Column(name = "nacl_per_l", precision = 10)
	public Double getNaclPerL() {
		return this.naclPerL;
	}

	public void setNaclPerL(Double naclPerL) {
		this.naclPerL = naclPerL;
	}

	@Column(name = "nacl_water_per_l", precision = 10)
	public Double getNaclWaterPerL() {
		return this.naclWaterPerL;
	}

	public void setNaclWaterPerL(Double naclWaterPerL) {
		this.naclWaterPerL = naclWaterPerL;
	}

	@Column(name = "na2so4_total", precision = 10)
	public Double getNa2so4Total() {
		return this.na2so4Total;
	}

	public void setNa2so4Total(Double na2so4Total) {
		this.na2so4Total = na2so4Total;
	}

	@Column(name = "nacl_total", precision = 10)
	public Double getNaclTotal() {
		return this.naclTotal;
	}

	public void setNaclTotal(Double naclTotal) {
		this.naclTotal = naclTotal;
	}

	@Column(name = "nacl_total_no_water", precision = 10)
	public Double getNaclTotalNoWater() {
		return this.naclTotalNoWater;
	}

	public void setNaclTotalNoWater(Double naclTotalNoWater) {
		this.naclTotalNoWater = naclTotalNoWater;
	}

	@Column(name = "pipe_pressure_in", precision = 10)
	public Double getPipePressureIn() {
		return this.pipePressureIn;
	}

	public void setPipePressureIn(Double pipePressureIn) {
		this.pipePressureIn = pipePressureIn;
	}

	@Column(name = "pressure_back", precision = 10)
	public Double getPressureBack() {
		return this.pressureBack;
	}

	public void setPressureBack(Double pressureBack) {
		this.pressureBack = pressureBack;
	}

	@Column(name = "water_temperature", precision = 10)
	public Double getWaterTemperature() {
		return this.waterTemperature;
	}

	public void setWaterTemperature(Double waterTemperature) {
		this.waterTemperature = waterTemperature;
	}

	@Column(name = "na2so4_temperature", precision = 10)
	public Double getNa2so4Temperature() {
		return this.na2so4Temperature;
	}

	public void setNa2so4Temperature(Double na2so4Temperature) {
		this.na2so4Temperature = na2so4Temperature;
	}

	@Column(name = "operator", length = 64)
	public String getOperator() {
		return this.operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}

	@Column(name = "auditer", length = 64)
	public String getAuditer() {
		return this.auditer;
	}

	public void setAuditer(String auditer) {
		this.auditer = auditer;
	}

	@Column(name = "remark", length = 64)
	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "produce_method", length = 64)
	public String getProduceMethod() {
		return this.produceMethod;
	}

	public void setProduceMethod(String produceMethod) {
		this.produceMethod = produceMethod;
	}
	@Transient
	public String getWellName() {
		return wellName;
	}

	public void setWellName(String wellName) {
		this.wellName = wellName;
	}
	@Transient
	public String getWellGroupName() {
		return wellGroupName;
	}

	public void setWellGroupName(String wellGroupName) {
		this.wellGroupName = wellGroupName;
	}
	@Transient
	public Integer getReportDate() {
		return reportDate;
	}

	public void setReportDate(Integer reportDate) {
		this.reportDate = reportDate;
	}

	

}